With computing becoming mainstream and essential for running any business or service, a large number of servers are being employed for different types of services (e.g., banking, customer service, human resource management, etc.). Typically, a server is customized to provide a particular type of service. For example, in a banking application, one or more servers are hosted by a bank and bank's customers, partners and associates connect to these servers to perform banking tasks. In the Internet based applications, the customers typically use Internet browsers to connect to one or more servers. However, dedicated client applications are also often used for specific type of applications. For example, millions of Skype™ client applications connect to servers for authentication, finding information, sending information to be routed to other clients, etc.
Typically, in order to serve a large number of users, more servers are added at the backend, and typically, load balancing systems are used to spread the load across multiple back-end servers.